home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / AIncludes / TextCommon.a < prev    next >
Encoding:
Text File  |  1998-02-12  |  17.2 KB  |  391 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        TextCommon.a
  3. ;
  4. ;    Contains:    Common text types and constants and prototypes for related functions 
  5. ;
  6. ;    Version:    Technology:    Mac OS 8
  7. ;                Release:    Universal Interfaces 3.1
  8. ;
  9. ;    Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        Please include the the file and version information (from above) with
  12. ;                the problem description.  Developers belonging to one of the Apple
  13. ;                developer programs can submit bug reports to:
  14. ;
  15. ;                    devsupport@apple.com
  16. ;
  17. ;
  18.     IF &TYPE('__TEXTCOMMON__') = 'UNDEFINED' THEN
  19. __TEXTCOMMON__ SET 1
  20.  
  21.     IF &TYPE('__MACTYPES__') = 'UNDEFINED' THEN
  22.     include 'MacTypes.a'
  23.     ENDIF
  24.  
  25. ;  TextEncodingBase type & values 
  26. ;  (values 0-32 correspond to the Script Codes defined in Inside Macintosh: Text pages 6-52 and 6-53 
  27. ; typedef UInt32                         TextEncodingBase
  28.  
  29.  
  30.                                                             ; Mac OS encodings
  31. kTextEncodingMacRoman            EQU        0
  32. kTextEncodingMacJapanese        EQU        1
  33. kTextEncodingMacChineseTrad        EQU        2
  34. kTextEncodingMacKorean            EQU        3
  35. kTextEncodingMacArabic            EQU        4
  36. kTextEncodingMacHebrew            EQU        5
  37. kTextEncodingMacGreek            EQU        6
  38. kTextEncodingMacCyrillic        EQU        7
  39. kTextEncodingMacDevanagari        EQU        9
  40. kTextEncodingMacGurmukhi        EQU        10
  41. kTextEncodingMacGujarati        EQU        11
  42. kTextEncodingMacOriya            EQU        12
  43. kTextEncodingMacBengali            EQU        13
  44. kTextEncodingMacTamil            EQU        14
  45. kTextEncodingMacTelugu            EQU        15
  46. kTextEncodingMacKannada            EQU        16
  47. kTextEncodingMacMalayalam        EQU        17
  48. kTextEncodingMacSinhalese        EQU        18
  49. kTextEncodingMacBurmese            EQU        19
  50. kTextEncodingMacKhmer            EQU        20
  51. kTextEncodingMacThai            EQU        21
  52. kTextEncodingMacLaotian            EQU        22
  53. kTextEncodingMacGeorgian        EQU        23
  54. kTextEncodingMacArmenian        EQU        24
  55. kTextEncodingMacChineseSimp        EQU        25
  56. kTextEncodingMacTibetan            EQU        26
  57. kTextEncodingMacMongolian        EQU        27
  58. kTextEncodingMacEthiopic        EQU        28
  59. kTextEncodingMacCentralEurRoman    EQU        29
  60. kTextEncodingMacVietnamese        EQU        30
  61. kTextEncodingMacExtArabic        EQU        31                    ; The following use script code 0, smRoman
  62. kTextEncodingMacSymbol            EQU        33
  63. kTextEncodingMacDingbats        EQU        34
  64. kTextEncodingMacTurkish            EQU        35
  65. kTextEncodingMacCroatian        EQU        36
  66. kTextEncodingMacIcelandic        EQU        37
  67. kTextEncodingMacRomanian        EQU        38                    ; The following use script code 4, smArabic
  68. kTextEncodingMacFarsi            EQU        $8C                    ; Like MacArabic but uses Farsi digits
  69.                                                             ; The following use script code 7, smCyrillic
  70. kTextEncodingMacUkrainian        EQU        $98                    ; The following use script code 32, smUnimplemented
  71. kTextEncodingMacVT100            EQU        $FC                    ; VT100/102 font from Comm Toolbox: Latin-1 repertoire + box drawing etc
  72.                                                             ; Special Mac OS encodings
  73. kTextEncodingMacHFS                EQU        $FF                    ; Meta-value, should never appear in a table.
  74.                                                             ; Unicode & ISO UCS encodings begin at 0x100
  75. kTextEncodingUnicodeDefault        EQU        $0100                ; Meta-value, should never appear in a table.
  76. kTextEncodingUnicodeV1_1        EQU        $0101
  77. kTextEncodingISO10646_1993        EQU        $0101                ; Code points identical to Unicode 1.1
  78. kTextEncodingUnicodeV2_0        EQU        $0103                ; New location for Korean Hangul
  79.                                                             ; ISO 8-bit and 7-bit encodings begin at 0x200
  80. kTextEncodingISOLatin1            EQU        $0201                ; ISO 8859-1
  81. kTextEncodingISOLatin2            EQU        $0202                ; ISO 8859-2
  82. kTextEncodingISOLatinCyrillic    EQU        $0205                ; ISO 8859-5
  83. kTextEncodingISOLatinArabic        EQU        $0206                ; ISO 8859-6, = ASMO 708, =DOS CP 708
  84. kTextEncodingISOLatinGreek        EQU        $0207                ; ISO 8859-7
  85. kTextEncodingISOLatinHebrew        EQU        $0208                ; ISO 8859-8
  86. kTextEncodingISOLatin5            EQU        $0209                ; ISO 8859-9
  87.                                                             ; MS-DOS & Windows encodings begin at 0x400
  88. kTextEncodingDOSLatinUS            EQU        $0400                ; code page 437
  89. kTextEncodingDOSGreek            EQU        $0405                ; code page 737 (formerly code page 437G)
  90. kTextEncodingDOSBalticRim        EQU        $0406                ; code page 775
  91. kTextEncodingDOSLatin1            EQU        $0410                ; code page 850, "Multilingual"
  92. kTextEncodingDOSGreek1            EQU        $0411                ; code page 851
  93. kTextEncodingDOSLatin2            EQU        $0412                ; code page 852, Slavic
  94. kTextEncodingDOSCyrillic        EQU        $0413                ; code page 855, IBM Cyrillic
  95. kTextEncodingDOSTurkish            EQU        $0414                ; code page 857, IBM Turkish
  96. kTextEncodingDOSPortuguese        EQU        $0415                ; code page 860
  97. kTextEncodingDOSIcelandic        EQU        $0416                ; code page 861
  98. kTextEncodingDOSHebrew            EQU        $0417                ; code page 862
  99. kTextEncodingDOSCanadianFrench    EQU        $0418                ; code page 863
  100. kTextEncodingDOSArabic            EQU        $0419                ; code page 864
  101. kTextEncodingDOSNordic            EQU        $041A                ; code page 865
  102. kTextEncodingDOSRussian            EQU        $041B                ; code page 866
  103. kTextEncodingDOSGreek2            EQU        $041C                ; code page 869, IBM Modern Greek
  104. kTextEncodingDOSThai            EQU        $041D                ; code page 874, also for Windows
  105. kTextEncodingDOSJapanese        EQU        $0420                ; code page 932, also for Windows
  106. kTextEncodingDOSChineseSimplif    EQU        $0421                ; code page 936, also for Windows
  107. kTextEncodingDOSKorean            EQU        $0422                ; code page 949, also for Windows; Unified Hangul Code
  108. kTextEncodingDOSChineseTrad        EQU        $0423                ; code page 950, also for Windows
  109. kTextEncodingWindowsLatin1        EQU        $0500                ; code page 1252
  110. kTextEncodingWindowsANSI        EQU        $0500                ; code page 1252 (alternate name)
  111. kTextEncodingWindowsLatin2        EQU        $0501                ; code page 1250, Central Europe
  112. kTextEncodingWindowsCyrillic    EQU        $0502                ; code page 1251, Slavic Cyrillic
  113. kTextEncodingWindowsGreek        EQU        $0503                ; code page 1253
  114. kTextEncodingWindowsLatin5        EQU        $0504                ; code page 1254, Turkish
  115. kTextEncodingWindowsHebrew        EQU        $0505                ; code page 1255
  116. kTextEncodingWindowsArabic        EQU        $0506                ; code page 1256
  117. kTextEncodingWindowsBalticRim    EQU        $0507                ; code page 1257
  118. kTextEncodingWindowsKoreanJohab    EQU        $0510                ; code page 1361, for Windows NT
  119.                                                             ; Various national standards begin at 0x600
  120. kTextEncodingUS_ASCII            EQU        $0600
  121. kTextEncodingJIS_X0201_76        EQU        $0620
  122. kTextEncodingJIS_X0208_83        EQU        $0621
  123. kTextEncodingJIS_X0208_90        EQU        $0622
  124. kTextEncodingJIS_X0212_90        EQU        $0623
  125. kTextEncodingJIS_C6226_78        EQU        $0624
  126. kTextEncodingGB_2312_80            EQU        $0630
  127. kTextEncodingGBK_95                EQU        $0631                ; annex to GB 13000-93; for Windows 95
  128. kTextEncodingKSC_5601_87        EQU        $0640                ; same as KSC 5601-92 without Johab annex
  129. kTextEncodingKSC_5601_92_Johab    EQU        $0641                ; KSC 5601-92 Johab annex
  130. kTextEncodingCNS_11643_92_P1    EQU        $0651                ; CNS 11643-1992 plane 1
  131. kTextEncodingCNS_11643_92_P2    EQU        $0652                ; CNS 11643-1992 plane 2
  132. kTextEncodingCNS_11643_92_P3    EQU        $0653                ; CNS 11643-1992 plane 3 (was plane 14 in 1986 version)
  133.                                                             ; ISO 2022 collections begin at 0x800
  134. kTextEncodingISO_2022_JP        EQU        $0820
  135. kTextEncodingISO_2022_JP_2        EQU        $0821
  136. kTextEncodingISO_2022_CN        EQU        $0830
  137. kTextEncodingISO_2022_CN_EXT    EQU        $0831
  138. kTextEncodingISO_2022_KR        EQU        $0840                ; EUC collections begin at 0x900
  139. kTextEncodingEUC_JP                EQU        $0920                ; ISO 646, 1-byte katakana, JIS 208, JIS 212
  140. kTextEncodingEUC_CN                EQU        $0930                ; ISO 646, GB 2312-80
  141. kTextEncodingEUC_TW                EQU        $0931                ; ISO 646, CNS 11643-1992 Planes 1-16
  142. kTextEncodingEUC_KR                EQU        $0940                ; ISO 646, KS C 5601-1987
  143.                                                             ; Misc standards begin at 0xA00
  144. kTextEncodingShiftJIS            EQU        $0A01                ; plain Shift-JIS
  145. kTextEncodingKOI8_R                EQU        $0A02                ; Russian internet standard
  146. kTextEncodingBig5                EQU        $0A03                ; Big-5 (has variants)
  147. kTextEncodingMacRomanLatin1        EQU        $0A04                ; Mac OS Roman permuted to align with ISO Latin-1
  148. kTextEncodingHZ_GB_2312            EQU        $0A05                ; HZ (RFC 1842, for Chinese mail & news)
  149.                                                             ; Other platform encodings
  150. kTextEncodingNextStepLatin        EQU        $0B01                ; NextStep encoding
  151.                                                             ; EBCDIC & IBM host encodings begin at 0xC00
  152. kTextEncodingEBCDIC_US            EQU        $0C01                ; basic EBCDIC-US
  153. kTextEncodingEBCDIC_CP037        EQU        $0C02                ; code page 037, extended EBCDIC (Latin-1 set) for US,Canada...
  154.                                                             ; Special value
  155. kTextEncodingMultiRun            EQU        $0FFF                ; Multi-encoding text with external run info
  156.                                                             ; The following are older names for backward compatibility
  157. kTextEncodingMacTradChinese        EQU        2
  158. kTextEncodingMacRSymbol            EQU        8
  159. kTextEncodingMacSimpChinese        EQU        25
  160. kTextEncodingMacGeez            EQU        28
  161. kTextEncodingMacEastEurRoman    EQU        29
  162. kTextEncodingMacUninterp        EQU        32
  163. ;  TextEncodingVariant type & values 
  164. ; typedef UInt32                         TextEncodingVariant
  165.  
  166.  
  167.                                                             ; Default TextEncodingVariant, for any TextEncodingBase
  168. kTextEncodingDefaultVariant        EQU        0                    ; Variants of kTextEncodingMacIcelandic                                                    
  169. kMacIcelandicStandardVariant    EQU        0                    ; 0xBB & 0xBC are fem./masc. ordinal indicators
  170. kMacIcelandicTrueTypeVariant    EQU        1                    ; 0xBB & 0xBC are fi/fl ligatures
  171.                                                             ; Variants of kTextEncodingMacJapanese
  172. kMacJapaneseStandardVariant        EQU        0
  173. kMacJapaneseStdNoVerticalsVariant EQU    1
  174. kMacJapaneseBasicVariant        EQU        2
  175. kMacJapanesePostScriptScrnVariant EQU    3
  176. kMacJapanesePostScriptPrintVariant EQU    4
  177. kMacJapaneseVertAtKuPlusTenVariant EQU    5                    ; Variant options for most Japanese encodings (MacJapanese, ShiftJIS, EUC-JP, ISO 2022-JP)    
  178.                                                             ; These can be OR-ed into the variant value in any combination
  179. kJapaneseNoOneByteKanaOption    EQU        $20
  180. kJapaneseUseAsciiBackslashOption EQU    $40                    ; Variants of kTextEncodingMacArabic
  181. kMacArabicStandardVariant        EQU        0                    ; 0xC0 is 8-spoke asterisk, 0x2A & 0xAA are asterisk (e.g. Cairo)
  182. kMacArabicTrueTypeVariant        EQU        1                    ; 0xC0 is asterisk, 0x2A & 0xAA are multiply signs (e.g. Baghdad)
  183. kMacArabicThuluthVariant        EQU        2                    ; 0xC0 is Arabic five-point star, 0x2A & 0xAA are multiply signs
  184. kMacArabicAlBayanVariant        EQU        3                    ; 8-spoke asterisk, multiply sign, Koranic ligatures & parens
  185.                                                             ; Variants of kTextEncodingMacFarsi
  186. kMacFarsiStandardVariant        EQU        0                    ; 0xC0 is 8-spoke asterisk, 0x2A & 0xAA are asterisk (e.g. Tehran)
  187. kMacFarsiTrueTypeVariant        EQU        1                    ; asterisk, multiply signs, Koranic ligatures, geometric shapes
  188.                                                             ; Variants of kTextEncodingMacHebrew
  189. kMacHebrewStandardVariant        EQU        0
  190. kMacHebrewFigureSpaceVariant    EQU        1                    ; Variants of Unicode & ISO 10646 encodings
  191. kUnicodeNoSubset                EQU        0
  192. kUnicodeCanonicalDecompVariant    EQU        2                    ; canonical decomposition; excludes composed characters
  193.                                                             ; Variants of Big-5 encoding
  194. kBig5_BasicVariant                EQU        0
  195. kBig5_StandardVariant            EQU        1                    ; 0xC6A1-0xC7FC: kana, Cyrillic, enclosed numerics
  196. kBig5_ETenVariant                EQU        2                    ; adds kana, Cyrillic, radicals, etc with hi bytes C6-C8,F9
  197.                                                             ; Unicode variants not yet supported (and not fully defined)
  198. kUnicodeNoCompatibilityVariant    EQU        1
  199. kUnicodeNoComposedVariant        EQU        3
  200. kUnicodeNoCorporateVariant        EQU        4                    ; The following are older names for backward compatibility
  201. kJapaneseStandardVariant        EQU        0
  202. kJapaneseStdNoVerticalsVariant    EQU        1
  203. kJapaneseBasicVariant            EQU        2
  204. kJapanesePostScriptScrnVariant    EQU        3
  205. kJapanesePostScriptPrintVariant    EQU        4
  206. kJapaneseVertAtKuPlusTenVariant    EQU        5                    ; kJapaneseStdNoOneByteKanaVariant = 6,    // replaced by kJapaneseNoOneByteKanaOption
  207.                                                             ; kJapaneseBasicNoOneByteKanaVariant = 7,    // replaced by kJapaneseNoOneByteKanaOption    
  208. kHebrewStandardVariant            EQU        0
  209. kHebrewFigureSpaceVariant        EQU        1
  210. kUnicodeMaxDecomposedVariant    EQU        2                    ; replaced by kUnicodeCanonicalDecompVariant
  211. ;  TextEncodingFormat type & values 
  212. ; typedef UInt32                         TextEncodingFormat
  213.  
  214.  
  215.                                                             ; Default TextEncodingFormat for any TextEncodingBase
  216. kTextEncodingDefaultFormat        EQU        0                    ; Formats for Unicode & ISO 10646
  217. kUnicode16BitFormat                EQU        0
  218. kUnicodeUTF7Format                EQU        1
  219. kUnicodeUTF8Format                EQU        2
  220. kUnicode32BitFormat                EQU        3
  221. ;  TextEncoding type 
  222. ; typedef UInt32                         TextEncoding
  223.  
  224. ;  name part selector for GetTextEncodingName
  225. ; typedef UInt32                         TextEncodingNameSelector
  226.  
  227.  
  228. kTextEncodingFullName            EQU        0
  229. kTextEncodingBaseName            EQU        1
  230. kTextEncodingVariantName        EQU        2
  231. kTextEncodingFormatName            EQU        3
  232. ;  Types used in conversion 
  233. TextEncodingRun            RECORD 0
  234. offset                     ds.l    1                ; offset: $0 (0)
  235. textEncoding             ds.l    1                ; offset: $4 (4)
  236. sizeof                     EQU *                    ; size:   $8 (8)
  237.                         ENDR
  238. ; typedef struct TextEncodingRun *        TextEncodingRunPtr
  239.  
  240. ; typedef struct TextEncodingRun *        ConstTextEncodingRunPtr
  241.  
  242. ScriptCodeRun            RECORD 0
  243. offset                     ds.l    1                ; offset: $0 (0)
  244. script                     ds.w    1                ; offset: $4 (4)
  245. sizeof                     EQU *                    ; size:   $6 (6)
  246.                         ENDR
  247. ; typedef struct ScriptCodeRun *        ScriptCodeRunPtr
  248.  
  249. ; typedef struct ScriptCodeRun *        ConstScriptCodeRunPtr
  250.  
  251. ; typedef UInt8 *                        TextPtr
  252.  
  253. ; typedef UInt8 *                        ConstTextPtr
  254.  
  255. ;  Basic types for Unicode characters and strings: 
  256. ; typedef UniChar *                        UniCharArrayPtr
  257.  
  258. ; typedef const UniChar *                ConstUniCharArrayPtr
  259.  
  260. ;  enums for TextEncoding Conversion routines
  261.  
  262. kTextScriptDontCare                EQU        -128
  263. kTextLanguageDontCare            EQU        -128
  264. kTextRegionDontCare                EQU        -128
  265. ;  struct for TECGetInfo
  266.  
  267. TECInfo                    RECORD 0
  268. format                     ds.w    1                ; offset: $0 (0)        ;  format code for this struct
  269. tecVersion                 ds.w    1                ; offset: $2 (2)        ;  TEC version in BCD, e.g. 0x0121 for 1.2.1
  270. tecTextConverterFeatures  ds.l    1                ; offset: $4 (4)        ;  bitmask indicating TEC features/fixes
  271. tecUnicodeConverterFeatures  ds.l 1                ; offset: $8 (8)        ;  bitmask indicating UnicodeConverter features/fixes
  272. tecTextCommonFeatures     ds.l    1                ; offset: $C (12)        ;  bitmask indicating TextCommon features/fixes
  273. tecTextEncodingsFolderName  ds    Str31            ; offset: $10 (16)        ;  localized name of Text Encodings folder (pascal string)
  274. tecExtensionFileName     ds        Str31            ; offset: $30 (48)        ;  localized name of TEC extension (pascal string)
  275. sizeof                     EQU *                    ; size:   $50 (80)
  276.                         ENDR
  277. ; typedef struct TECInfo *                TECInfoPtr
  278.  
  279. ; typedef TECInfoPtr *                    TECInfoHandle
  280.  
  281. ;  Value for TECInfo format code
  282.  
  283. kTECInfoCurrentFormat            EQU        1                    ; any future formats will just add fields at the end
  284.  
  285. ;   Defined feature/fix bits for tecUnicodeConverterFeatures field
  286. ;   Bit:                                Meaning if set:
  287. ;   ----                                ---------------
  288. ;   kTECKeepInfoFixBit                Unicode Converter no longer ignores other control flags if
  289. ;                                      kUnicodeKeepInfoBit is set. Bug fix in TEC Manager 1.2.1.
  290. ;   kTECFallbackTextLengthFixBit        Unicode Converter honors the *srcConvLen and *destConvLen
  291. ;                                      returned by caller-supplied fallback handler for any status it
  292. ;                                      returns except for kTECUnmappableElementErr (previously it only
  293. ;                                      honored these values if noErr was returned). Bug fix in TEC
  294. ;                                      Manager 1.2.1.
  295. ;   kTECTextRunBitClearFixBit        ConvertFromUnicodeToTextRun & ConvertFromUnicodeToScriptCodeRun
  296. ;                                      function correctly if the kUnicodeTextRunBit is set (previously
  297. ;                                      their determination of best target encoding was incorrect). Bug
  298. ;                                      fix in TEC Manager 1.3.
  299. ;   kTECTextToUnicodeScanFixBit        ConvertFromTextToUnicode uses an improved scanner and maintains
  300. ;                                      some resulting state information, which it uses for mapping.
  301. ;                                      This has several effects:
  302. ;                                      - Improved mapping of 0x30-0x39 digits in Mac OS Arabic, fewer
  303. ;                                        direction overrides when mapping Mac OS Arabic & Hebrew, and
  304. ;                                        improved mapping of certain characters in Indic encodings.
  305. ;                                      - Malformed input produces kTextMalformedInputErr.
  306. ;                                      - ConvertFromTextToUnicode accepts and uses the control flags
  307. ;                                        kUnicodeKeepInfoMask and kUnicodeStringUnterminatedMask.
  308. ;                                      Bug fix and enhancement in TEC Manager 1.3.
  309.  
  310.  
  311.  
  312.  
  313. kTECKeepInfoFixBit                EQU        0
  314. kTECFallbackTextLengthFixBit    EQU        1
  315. kTECTextRunBitClearFixBit        EQU        2
  316. kTECTextToUnicodeScanFixBit        EQU        3
  317.  
  318. kTECKeepInfoFixMask                EQU        $00000001
  319. kTECFallbackTextLengthFixMask    EQU        $00000002
  320. kTECTextRunBitClearFixMask        EQU        $00000004
  321. kTECTextToUnicodeScanFixMask    EQU        $00000008
  322. ;  Prototypes for TextEncoding functions
  323.  
  324. ;
  325. ; pascal TextEncoding CreateTextEncoding(TextEncodingBase encodingBase, TextEncodingVariant encodingVariant, TextEncodingFormat encodingFormat)
  326. ;
  327.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  328.         IMPORT_CFM_FUNCTION CreateTextEncoding
  329.     ENDIF
  330.  
  331. ;
  332. ; pascal TextEncodingBase GetTextEncodingBase(TextEncoding encoding)
  333. ;
  334.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  335.         IMPORT_CFM_FUNCTION GetTextEncodingBase
  336.     ENDIF
  337.  
  338. ;
  339. ; pascal TextEncodingVariant GetTextEncodingVariant(TextEncoding encoding)
  340. ;
  341.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  342.         IMPORT_CFM_FUNCTION GetTextEncodingVariant
  343.     ENDIF
  344.  
  345. ;
  346. ; pascal TextEncodingFormat GetTextEncodingFormat(TextEncoding encoding)
  347. ;
  348.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  349.         IMPORT_CFM_FUNCTION GetTextEncodingFormat
  350.     ENDIF
  351.  
  352. ;
  353. ; pascal TextEncoding ResolveDefaultTextEncoding(TextEncoding encoding)
  354. ;
  355.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  356.         IMPORT_CFM_FUNCTION ResolveDefaultTextEncoding
  357.     ENDIF
  358.  
  359. ;
  360. ; extern OSStatus GetTextEncodingName(TextEncoding iEncoding, TextEncodingNameSelector iNamePartSelector, RegionCode iPreferredRegion, TextEncoding iPreferredEncoding, ByteCount iOutputBufLen, ByteCount *oNameLength, RegionCode *oActualRegion, TextEncoding *oActualEncoding, TextPtr oEncodingName)
  361. ;
  362.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  363.         IMPORT_CFM_FUNCTION GetTextEncodingName
  364.     ENDIF
  365.  
  366. ;
  367. ; pascal OSStatus TECGetInfo(TECInfoHandle *tecInfo)
  368. ;
  369.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  370.         IMPORT_CFM_FUNCTION TECGetInfo
  371.     ENDIF
  372.  
  373.  
  374. ;
  375. ; pascal OSStatus UpgradeScriptInfoToTextEncoding(ScriptCode iTextScriptID, LangCode iTextLanguageID, RegionCode iRegionID, ConstStr255Param iTextFontname, TextEncoding *oEncoding)
  376. ;
  377.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  378.         IMPORT_CFM_FUNCTION UpgradeScriptInfoToTextEncoding
  379.     ENDIF
  380.  
  381. ;
  382. ; pascal OSStatus RevertTextEncodingToScriptInfo(TextEncoding iEncoding, ScriptCode *oTextScriptID, LangCode *oTextLanguageID, Str255 oTextFontname)
  383. ;
  384.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  385.         IMPORT_CFM_FUNCTION RevertTextEncodingToScriptInfo
  386.     ENDIF
  387.  
  388.  
  389.     ENDIF ; __TEXTCOMMON__ 
  390.  
  391.